|
|
|
|
- Manejando un Record cruzado
- Número de registros tachados
- Versión del archivo de datos
- Cruzar un Record de una consulta
- Casos especiales
- Archivos xBase
<Fuente>.Cross (Función)
Disponible solo con estos tipos de conexión
Tacha un registro en un archivo de datos. La Record se borra lógicamente y puede ser recuperada si es necesario. Se realizan las siguientes operaciones: - el Record se convierte en Inactive. Los datos se almacenan (lo que no ocurre cuando un Record es eliminado por <Fuente>.Delete).
- los índices (correspondientes a las claves de Record) se borran del archivo de índices.
- los memos asociados con la Record se almacenan.
Esta función se puede utilizar en los archivos de datos, las vistas de HFSQL Mobile o las consultas.
// Crosses the record #123 Customer.Cross(123)
// Cross the customer orders Order.ReadSeekFirst(CUSTNUM, ValCustNum) WHILE Order.Found() = True Order.Cross() Order.ReadNext() END
Sintaxis
<Result> = <Source>.Crossed([<Record number> [, <Options>]])
<Result>: Boolean - True si se tachó el registro,
- False si se produce un problema (registro bloqueado, problema de integridad, etc.). HErrorInfo devuelve más detalles.
<Source>: Tipo de fuente especificada Nombre del archivo de datos HFSQL, consulta o vista utilizada. <Record number>: Entero opcional Número de la Record a cruzar. Si no se especifica este parámetro (igual a 0 o a la constante hCurrentRecNum), el registro activo se tachará. <Options>: Constante opcional Configura:- el modo de bloqueo aplicado a la cruzada Record. Si no se especifica una constante de bloqueo, la Record cruzada no está bloqueada.
| | hLockNo (valor predeterminado) | Sin bloqeuo: el cruce de Record no se cerrará. | hLockReadWrite | Bloqueo de lectura/escritura: la corriente cruzada Record no puede ser leída o reactivada por otra aplicación. | hLockWrite | Bloqueo de escritura: otra aplicación puede leer y consultar la record cruzada actual (<Fuente>.Read) pero no puede volver a activarla. Sólo la aplicación actual puede volver a activarla. |
- la gestión de la integridad aplicada a la cruzada Record.
| | hCheckIntegrity | Comprueba la integridad de la operación, incluso si la comprobación de integridad de automatic está desactivada (<Variable Connection>.SetIntegrity). | hIgnoreIntegrity | Ignora la comprobación de integridad para esta operación, incluso si la comprobación de integridad de automatic está activada (<Variable Connection>.SetIntegrity). |
Se produce un error de WLanguage si se utilizan las dos constantes al mismo tiempo.. Estas constantes no tienen ningún efecto en el borrado en cascada.
Observaciones Manejando un Record cruzado - Un Record cruzado no se leerá:
- mediante funciones de iteración: <Fuente>.First, <Fuente>.Last, <Fuente>.Next, <Fuente>.Previous, <Fuente>.ReadFirst, <Fuente>.ReadLast, <Fuente>.ReadNext, <Fuente>.ReadPrevious, <Fuente>.Forward, <Fuente>.Backward
- por las funciones de búsqueda: <Fuente>.SeekFirst, <Fuente>.ReadSeekFirst, <Fuente>.SeekLast, <Fuente>.ReadSeekLast.
- Una Record cruzada puede ser leída por <Fuente>.Read.
- Un Record cruzado puede volver a activarse mediante <Fuente>.Modify o <Fuente>.Write.
- <Fuente>.State sirve para conocer el estado de record (active, cruzado, borrado, etc.).
- La ubicación física de una Record cruzada sólo puede ser reutilizada (por <Fuente>.Add, por ejemplo) después:
- la ejecución de <Fuente>.Free,
- una operación de reindexación (con compresión).
Número de registros tachados <Fuente>.NbRec se utiliza para conocer el número de registros cruzados en el archivo de datos. Observación: Para la compatibilidad con WEBDEV 1.5/WINDEV 5.5, el número de registros cruzados también puede ser devuelto por el H.NbDel Variable. Versión del archivo de datos Si <Fuente>.Cross tiene éxito, se modifica el número de versión de el archivo de datos. Este número de versión es devuelto por <Fuente>.Version. Cruzar un Record de una consulta Un registro puede ser tachado: - en el resultado de la consulta.
- en los archivos tratados por la consulta (hModifyFile constante utilizada en o ). En este caso, la constante hWithFilter se selecciona automáticamente.
Independientemente del modo de ejecución de la consulta (con o sin la constante hWithFilter), <Fuente>.Cross sólo puede utilizarse en consultas de un solo archivo. Atención: - Los registros no pueden cruzarse en una consulta que utilice grupos o agregados.
- La gestión de la integridad y de los duplicados no se realiza durante las operaciones en las consultas multiarchivo.: se recomienda utilizar las transacciones para evitar cualquier problema.
Casos especiales - Gestión de cierres:
Si se produce un problema de bloqueo al "tachar" un registro (intentar tachar un registro bloqueado, por ejemplo), no se modifica el registro y la función HErrorLock devuelve True. - Gestión de la integridad referencial
Si la gestión de la integridad referencial está activa (función <Variable Connection>.SetIntegrity), y no se verifica la integridad durante la eliminación, no se ejecuta la función <Fuente>.Cross. Se debe probar la función HErrorIntegrity después de la función <Fuente>.Cross. - Registros borrados
No se debe llamar a la función <Fuente>.Cross en un registro eliminado previamente.
Esta página también está disponible para…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|